iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
Modern Web

clojure 刷刷鍋系列 第 9

Clojure 肉片 -第 9 塊

  • 分享至 

  • xImage
  •  

【心得】

有事情,候補XD

【今日湯底】

Definition
A Tidy number is a number whose digits are in non-decreasing order.

Task
Given a number, Find if it is Tidy or not .

(必須通過以下測試)

(ns kata.test
  (:require [clojure.test :refer :all]
            [kata         :refer [tidy-number]]))

(deftest basic-tests
  (is (= (tidy-number 12) true))
  (is (= (tidy-number 102) false))
  (is (= (tidy-number 9672) false))
  (is (= (tidy-number 2789) true))
  (is (= (tidy-number 2335) true)))

【我的答案】

(ns kata)

(defn tidy-number [n]
  (= n (Integer/parseInt (clojure.string/join (map str (sort (str n))))))
  )

思路:

  1. 想到只要把『輸入值』先做排序,再跟『輸入值』比較一次,一樣的話就是 true 否則 false
  2. sort 的參數必須給 string 先轉型別
  3. map 後會給成 ("1" "2")
  4. 透過 join 合併成 "12"
  5. 再轉回 integer 跟原本輸入值比對

【其他人的答案】

(ns kata)

(defn tidy-number [n]
  (apply <= (map #(Integer. (str %)) (str n))))
(ns kata)

(defn tidy-number [n]
  (= (str n) (apply str (sort (str n)))))

上一篇
Clojure 肉片 -第 8 塊
下一篇
Clojure 肉片 -第 10 塊
系列文
clojure 刷刷鍋30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言